<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- 求一个三位数，叫做“喇叭花数”，该三位数等与其每位数字的阶乘之和。输出100~999的所有喇叭花数。 -->


    <script type="text/javascript">
        // 解题思路：1.封装一个阶乘的函数。2.通过循环，遍历所有的三位数，并求出个、十、百位数的具体数。
        // 3.通过给每位数调用阶乘函数，判断他们相加后，是否满足该三位数等与其每位数字的阶乘之和。

        function num(n) {
            if (n == 0) {
                var result = 0;
            } else if (n == 1) {
                result = 1;
            } else {
                result = n * num(n - 1)
            }
            return result;
        }

        for (var i = 100; i <= 999; i++) {
            var ge = i % 10,
                shi = parseInt(i / 10) % 10,
                bai = parseInt(i / 100);
            if (i == num(ge) + num(shi) + num(bai)) {
                console.log("喇叭花数为:" + i);
            }
        }
    </script>
</body>

</html>